1. Field of the Invention
The present invention relates to a storage system which inputs/outputs data using such storage devices as a magnetic disk, and the disk load balance control method thereof, and more particularly to a storage system which performs balance processing for the host I/O commands and internal I/O commands so as to prevent the stagnation of command processing, and disk load balance control method thereof.
2. Description of the Related Art
In storage devices using such storage medium as a magnetic disk, magneto-optical disk and optical disk, the storage medium is actually accessed by a request of the data processor. If the data processor uses large capacity data, a storage system comprised of a plurality of storage units and a control device is used.
Such a storage system has a DTC (Dynamic Traffic Control) function for optimizing resource allocation dynamically within the system when a large volume of data is accessed, and implementing stable performance for access from a host device. FIG. 24 is a block diagram of prior art, and FIG. 25 is a flow chart depicting the prior art.
As FIG. 24 shows, the storage controller 100 controls access to a plurality of storage devices (magnetic disk devices) 110 according to host I/O commands. This storage controller 100 has a command processing function 102, DTC function 104, disk driver 106 and device adaptor 108. The command processing function 102 receives the host I/O commands and internal I/O commands.
An internal I/O command is an I/O control which is executed in the background of the host I/O, such as OPC (One Point Copy), which executes copying sequentially in the background of the host I/O according to a copy instruction of the continuous block group from the host, rebuild for rebuilding the RAID, and copy back for writing data on the spare disk used for rebuilding back to a new disk which was replaced by a maintenance operation.
The DTC function 104 controls the number of commands to be issued to the storage device 110 via the driver 106 and device adaptor 108. As FIG. 25 shows, in prior art, the DTC function 104 measures the response time of each command (time from issuing a command to the storage device 110 to receiving a response from the storage device 110), calculates the average response time, increases the number of commands to be issued in unit time if this average response time is shorter than a predetermined time, and decreases the number of commands to be issued in unit time if the average response time is longer than the predetermined time. Commands which exceed the determined number of commands to be issued are queued.
The command processing function 102 processes the host I/O (random, sequential) with priority without any acceptance restriction, and transfers the host I/O to the DTC 104. An internal I/O is processed in the background of the host I/O, and is transferred to the DTC 104. The DTC 104 issues commands to the storage device 110 via the driver 106 and device adaptor 108, within the range which does not exceed the above mentioned number of commands to be issued.
In this way, the DTC 104 dynamically changes the number of activations (number of commands) according to the response time of the storage device 110 to optimize the execution of I/O commands (e.g. Japanese Patent Application Laid-Open No. 2001-43032).
In prior art, one or more commands are managed as a group for each physical disk, based on time, assuming that the processing sequence does not change beyond this group. In other words, it is checked whether disk processing completes within a predetermined time from the processing time of the disk device, and as the processing time becomes shorter, the number of disk requests to be issued is increased.
In a RAID configuration which performs stripe control, however, the data is distributed into a plurality of disks, so even if load control is performed for an individual disk, the load control is not reflected in the response time as the RLU (Raid Logical Unit) corresponding to the RAID group. In other words, in the case of control in an RLU unit, the processing sequence is not guaranteed, and one processing may be completed by accessing a plurality of disks, so simply measuring the processing time is not sufficient for effective functioning.
In other words, in the case of conventional DTC control using time, a temporary delay of a disk may cause a delay in other processing, and a time out of the host I/O tends to occur.